The Internet, like so many other high tech developments, grew from research originally performed by the United States Department of Defense. In the 1960s, the military had accumulated a large collection of incompatible computer networks. Computers on these different networks could not communicate with other computers across their network boundaries.
In the 1960s, the Defense Department wanted to develop a communication system that would permit communication between these different computer networks. Recognizing that a single, centralized communication system would be vulnerable to attacks or sabotage, the Defense Department required that the communication system be decentralized with no critical services concentrated in vulnerable failure points. In order to achieve this goal, the Defense Department established a decentralized standard communication protocol for communication between their computer networks.
A few years later, the National Science Foundation (NSF) wanted to facilitate communication between incompatible network computers at various research institutions across the country. The NSF adopted the Defense Department's protocol for communication, and this combination of research computer networks would eventually evolve into the Internet.
Internet Protocols
The Defense Department's communication protocol governing data transmission between different networks was called the Internet Protocol (IP) standard. The IP standard has been widely adopted for the transmission of discrete information packets across network boundaries. In fact, the IP standard is the standard protocol governing communications between computers and networks on the Internet.
The IP standard identifies the types of services to be provided to users and specifies the mechanisms needed to support these services. The IP standard also specifies the upper and lower system interfaces, defines the services to be provided on these interfaces, and outlines the execution environment for services needed in the system.
A transmission protocol, called the Transmission Control Protocol (TCP), was developed to provide connection-oriented, end-to-end data transmission between packet-switched computer networks. The combination of TCP with IP (TCP/IP) forms a suite of protocols for information packet transmissions between computers on the Internet. The TCP/IP standard has also become a standard protocol for use in all packet switching networks that provide connectivity across network boundaries.
In a typical Internet-based communication scenario, data is transmitted from an originating communication device on a first network across a transmission medium to a destination communication device on a second network. After receipt at the second network, the packet is routed through the network to a destination communication device, and the TCP/IP protocol determines this routing. Because of the standard protocols in Internet communications, the IP protocol on the destination communication device decodes the transmitted information into the original information transmitted by the originating device.
TCP/IP Addressing and Routing
Under the TCP/IP protocols, a computer operating on an IP-based network is assigned a unique physical address called an IP address. The IP address can include: (1) a network ID and number identifying a network, (2) a sub-network ID number identifying a substructure on the network, and (3) a host ID number identifying a particular computer on the sub-network. A header data field in the information packet will include source and destination addresses. The IP addressing scheme imposes a consistent addressing scheme that reflects the internal organization of the network or sub-network.
A router is used to regulate the transmission of information packets into and out of the computer network. Routers interpret the logical address contained in information packet headers and direct the information packets to the intended destination. Information packets addressed between computers on the same network do not pass through a router on the boundary of the network, and as such, these information packets will not clutter the transmission lines outside the network. If data is addressed to a computer outside the network, the router on the network boundary forwards the data onto the greater network.
TCP/IP network protocols define how routers determine the transmission path through a network and across network boundaries. Routing decisions are based upon information in the IP header and corresponding entries in a routing table maintained on the router. A routing table contains the information for a router to determine whether to accept an information packet on behalf of a device or pass the information packet onto another router.
The IP-Based Mobility System
The Internet protocols were originally developed with an assumption that Internet users would be connected to a single, fixed network. With the advent of cellular wireless communication systems using mobile communication devices, the movement of Internet users within a network and across network boundaries has become common. Because of this highly mobile Internet usage, the implicit design assumption of the Internet protocols (e.g. a fixed user location) is violated by the mobility of the user.
In an IP-based mobile communication system, the mobile communication device (e.g. cellular phone, pager, computer, etc.) can be called a mobile node or mobile station. Typically, a mobile station maintains connectivity to its home network while operating on a visited network. The mobile station will always be associated with its home network for IP addressing purposes and will have information routed to it by routers located on the home and visited networks. The routers can be referred to by a number of names including Home Agent, Home Mobility Manager, Home Location Register, Foreign Agent, Serving Mobility Manager, Visited Location Register, and Visiting Serving Entity.
IP computer networks also include one or more network elements or components besides routers, such as hubs, switches, bridges, repeaters, gateways, and computer servers. Computer servers provide services to other computers and support the transfer and communication of data over the network. One common service is authentication, authorization, and accounting activity (AAA), and AAA servers on the home and foreign network perform the AAA activities for each network. Other common servers are Web servers, mail servers, and Local Area Network (LAN) servers.
Session Initiation Protocol (SIP)
The 3rd Generation Partnership Project (3GPP) and 3rd Generation Partnership Project 2 (3GPP2) are evolving third generation communication system standards for wireless communication systems transmitting multimedia services. These 3GPP and 3GPP2 mobile communication systems support multimedia telecommunication services delivering voice Internet Protocol (VoIP) and data, to include pictures, video communications, and other multimedia information over mobile wireless connections. These systems generally operate over a derivative Code Division Multiple Access (CDMA), General Packet Radio Service (GPRS) and/or Universal Mobile Telecommunication Systems (UMTS) communication system architecture.
The Session Initiation Protocol (SIP) was developed to setup communication paths over the system's routers and server computers for transmitting information packets containing multimedia communications over 3GPP2 systems. SIP is a signaling protocol used to initiate, manage, and terminate multimedia communications over packet networks. SIP has evolved to become the core protocol for establishing multimedia communication sessions over the Internet. It is a control protocol for creating, modifying, and terminating communication sessions with one or more participants. The protocol transmits information packets establishing, changing, and terminating communication sessions for multimedia applications in IP-based networks. SIP is used to determine user location, user availability, use capabilities, session setup, and session management. SIP registers IP-based address end points; performs address resolution, name mapping and call redirection functions; determines media capabilities of the target end points; registers end user preferences and call routing; registers and publishes presence information; establishes a communication session and support mid-session changes; and supports transfer and termination of calls. It is used for both voice and video communication in either point-to-point or multiparty sessions.
There are two basic types of SIP messages—Requests and Responses. Requests are sent from a client to a server, and Responses are sent from a server to a client. Requests message types include INVITE, Re-INVITE, ACK, BYE, CANCEL, OPTIONS, REGISTER, and INFO. INVITE messages are used to initiate a call. Re-INVITE messages are used in an ongoing communication to make a change in the media. ACK confirms a final response to an INVITE. BYE terminates a call. CANCEL terminates searches and ringing. OPTIONS requests the capabilities the other side. Response types include Provisional and Final responses. Examples of Response type messages include 100 Trying, 180 Ringing, 183 Progress, 200 OK, 401 Unauthorized, 403 Forbidden, 408 Request time-out, 600 Busy, and 603 Decline.
Each SIP message is composed of three parts 1) a Start Line, 2) a Header field, and 3) a Body. The Start Line designates the message type and the protocol version. Headers are used to convey message attributes and modify message meanings. The Body describes the message being initiated such as a multimedia session or a push-to-talk session. It may also be used to convey opaque textual or binary data that relates to the session.
The Session Initiation Protocol (SIP) handles initiation of interactive communications sessions between users and termination and modifications of sessions. “Initiating” requires determining where the user being contacted can be contacted at a particular moment. This might be on a PC at work, a mobile cell phone, a PC at home, or an IP desk phone at work or home.
Once the user being called is located, SIP performs its second main function of delivering a description of the invited session. SIP transports information about the protocol used to describe the session. Session Description Protocol (SDP) is used by SIP to describe the session. The SIP/SDP format can also be used to negotiate a common communication format for the session. After the session description has been delivered, SIP is used to transmit the response (accept, reject, etc.). If accepted, the session is now active. SIP can also be used to modify the session or terminate the session (i.e., hang up).
Session Description Protocol (SDP)
The SDP protocol describes multimedia session announcement, multimedia session invitation, and other forms of multimedia session initiation. SDP packets typically include session information (e.g. 1) name and purpose, 2) time session is active, and 3) contact information for user responsible for the session) and media information (e.g. type of media, transport protocol, media format, multicast address and Transport Port for media, and remote address for media and Transport Port for contact address).
SIP is based on an offer-answer paradigm. To initiate a session, the caller (known as the User Agent Client or UAC) sends a request (called an INVITE) to the person the caller wants to talk to. This message is sent through one or more call agent servers that route and deliver messages to the called party. The called party sends a response, accepting or rejecting the invitation, which is forwarded back through the same set of servers in reverse order.
For many applications, latency is an important issue. The determinative factor for how quickly a user can start to use the service is the session initiation latency, and excessive latency can become annoying to the frequent user. Transport latency is not as important to most users, but for some applications, transport latency can become problematic. For example, the latency associated with Push-to-Talk (PTT) initiation can be as much as 5 seconds.
A significant proportion of the initiation latency is due to message overhead because of the size of the SIP messages used for creating the SIP session. For example, the SIP INVITE message may be 1500 bytes or more in length, the SIP OK message is generally 200-700 bytes in length, and the SIP REGISTER message may be 350 bytes or more in length. If the size of these SIP messages could be significantly reduced, the initiation latency can be significantly reduced, improving service. Services that can benefit from a reduction in size of the SIP header include VoIP, Push-to-Talk (PTT), and Video Telephony (VT). Reducing the size of the SIP header should permit these services to operate on 1× Evolution-Data Optimized (1×EV-DO), Universal Mobile Telecommunications System (UMTS), Worldwide Interoperability for Microwave Access (WiMAX), and Wireless Local Area Network (WLAN). The reduction in SIP header size reduces call setup time significantly, obtaining VoIP post dial delay to less than 3 seconds, and PTT over Cellular (PoC) to a delay of less than one second. Sufficient size reduction will permit the SIP message to fit within the shorter bandwidth of the control channels. The control channels are used by wireless access technology to manage radio frequency resources, such as overhead messages, traffic channel acquisitions, manage hand-off, paging, and other aspects of radio frequency control.
One prior art method for reducing the SIP message size has been to establish a standardized dictionary as discussed in RFC 3485 “The Session Initiation Protocol (SIP) and Session Description Protocol (SDP) Static Dictionary for Signaling Compression (SIGCOMP).” In the SIGCOMP approach, a finite dictionary defines many SIP parameters as 3-byte data substitutions. However, there are problems with the SIGCOMP approach. SIGCOMP is limited by the terms defined in the dictionary, which is static. The SIGCOMP dictionary does not evolve as SIP or SDP evolved and has remained static and unchanged. Attempts have been made to use event based state tables to build a dynamic extension to the SIGCOMP library, but under this approach the initial REGISTER message lacks enough pre-history traffic data to take advantage of this feature and memory limitations in the user equipment (UE) (e.g. cell phone, personal data assistant, computer, etc) restricts storage of long term history in the state tables to build an adequate library. There is a need for a flexible protocol to reduce the message size of SIP messages and improve service on networks.